import request from './request'

/**
 * 管理员管理相关API
 */
export const managerApi = {
  /**
   * 获取管理员列表
   * @param {Object} data - 查询参数
   * @param {number} data.page - 页码
   * @param {number} data.per_page - 每页数量
   * @param {string} data.search - 搜索关键词
   * @param {string} data.type - 管理员类型
   * @param {number} data.is_enable - 启用状态
   * @returns {Promise} 管理员列表
   */
  getList(data) {
    return request({
      url: '/api/manager/list',
      method: 'POST',
      data
    })
  },

  /**
   * 添加管理员
   * @param {Object} data - 管理员数据
   * @param {string} data.email - 邮箱
   * @param {string} data.password - 密码
   * @param {string} data.name - 姓名
   * @param {number} data.type - 管理员类型 (1: 超级管理员, 2: 普通管理员)
   * @param {number} data.is_enable - 启用状态 (1启用 0禁用)
   * @returns {Promise} 添加结果
   */
  add(data) {
    return request({
      url: '/api/manager/add',
      method: 'POST',
      data
    })
  },

  /**
   * 获取管理员详情
   * @param {number} managerId - 管理员ID
   * @returns {Promise} 管理员详情
   */
  getDetail(managerId) {
    return request({
      url: `/api/admin/managers/${managerId}`,
      method: 'POST',
      data: { managerId }
    })
  },

  /**
   * 更新管理员信息
   * @param {Object} data - 更新数据
   * @param {number} data.id - 管理员ID
   * @param {string} data.password - 新密码 (可选)
   * @param {number} data.is_enable - 启用状态 (0: 禁用, 1: 启用)
   * @returns {Promise} 更新结果
   */
  update(data) {
    return request({
      url: '/api/manager/update',
      method: 'POST',
      data
    })
  },

  /**
   * 修改密码
   * @param {Object} data - 密码数据
   * @param {string} data.old_password - 旧密码
   * @param {string} data.new_password - 新密码
   * @returns {Promise} 修改结果
   */
  changePassword(data) {
    return request({
      url: '/api/manager/changePassword',
      method: 'POST',
      data
    })
  },

  /**
   * 更新管理员状态
   * @param {number} managerId - 管理员ID
   * @param {Object} data - 状态数据
   * @param {number} data.is_enable - 启用状态
   * @returns {Promise} 更新结果
   */
  updateStatus(managerId, data) {
    return request({
      url: `/api/admin/managers/${managerId}/status`,
      method: 'POST',
      data
    })
  },

  /**
   * 删除管理员
   * @param {number} managerId - 管理员ID
   * @returns {Promise} 删除结果
   */
  delete(managerId) {
    return request({
      url: `/api/admin/managers/delete/${managerId}`,
      method: 'POST',
      data: { managerId }
    })
  },

  /**
   * 批量操作管理员
   * @param {Object} data - 批量操作数据
   * @param {number[]} data.manager_ids - 管理员ID数组
   * @param {string} data.action - 操作类型
   * @returns {Promise} 批量操作结果
   */
  batchAction(data) {
    return request({
      url: '/api/admin/managers/batch-action',
      method: 'POST',
      data
    })
  }
}

export default managerApi